Ejecutar los tests con Jasmine usando una seed nos permite que los tests se ejecuten en un orden concreto, lo que nos permite replicar escenarios en los que un test falla al ejecutarse en un orden concreto.
Cuando ejecutamos los tests de manera normal siempre se genera una seed de manera aleatoria, la seed podemos verla aqui:
NOTA:Si hacemos click encima del numero los tests se volveran a lanzar con la misma seed
Si queremos volver a ejecutar los tests con una seed concreta lo hacemos poniendo lo siguiente en la barra de direcciones:
/debug.html?seed=1234
De esta manera se ejecutaran los tests con la seed "1234", haciendo que todo se ejecute en el orden de esa seed
Si queremos obtener la seed en la salida de la consola (en vez de la interfaz del navegador) tendremos que instalar un paquete a mayores, ya que por defecto no se proporciona esta información.
El paquete que tenemos que instalar es el siguiente:
Paquete karma-jasmine-order-reporternpm install karma-jasmine-order-reporter --save-dev
Una vez tenemos instalado el paquete en nuestro proyecto tenemos que configurar nuestro archivo karma.conf.js
require('karma-jasmine-order-reporter')
A la hora de ejecutar los tests tenemos que indicar el nuevo reporter de la siguiente manera:
ng test --browsers ChromeHeadless --code-coverage --reporters="jasmine-order"
La opción --reporters="jasmine-order" es la importante
Al ejecutar los test se mostrará con que seed se están ejecutando de esta manera:
Test | Seed | Jasmine